loadFirebugConsole();

function HandleXML(oData, sStatus)
{
  $("div#listHolder")
	.empty()
	.append($(oData.responseXML.documentElement)
/*	.find("*")
		.each(function()
		{
		  $(this).removeAttr("dbxmlName");
		})
		.parent()*/
	.xmlToList()
	.treeview()
	.editable('span.tagName.opening,span.tagAttrName,span.tagAttrValue,span.tagValue',
	{
	  afterUpdate:	function()
	  {
		$.ajax(
		{
		  url: 'DBXmlAdmin.php',
		  data:	{u:$(this).parents('li').xmlToString()},
		  type:	"POST",
		  complete: HandleXML
		});
		
		$(this).parent().find('span.tagName.closing').html($(this).val());
	  }
	})
  );
}

jQuery(function()
{
  $.ajax(
  {
	url: 'DBXmlAdmin.php',
	complete: HandleXML
  });

  $('input[@name="mSubmit"]').click(function()
  {
	$.ajax(
	{
	  url: 'DBXmlAdmin.php',
	  data:	{p:$('textarea[@name="sXml"]').val()},
	  type:	"POST",
	  complete: HandleXML
	});
  });

  $('input[@name="mQuery"]').click(function()
  {
	$.ajax(
	{
	  url:	'DBXmlAdmin.php',
	  data: {q:$('textarea[@name="sQuery"]').val()},
	  type: 'POST',
	  complete: HandleXML
	});
  });

  $('span#toolButtonInsert').toggle(function()
  {
	$(this).addClass('pushed');
	$('div#listHolder').css('width', '45%');
	$('div#toolInsert').css('width', '45%');
  },function()
  {
	$(this).removeClass('pushed');
	$('div#listHolder').css('width', '100%');
	$('div#toolInsert').css('width', '0%');
  });

  $('span#toolButtonQuery').toggle(function()
  {
	$(this).addClass('pushed')
	$('div#toolQuery').css('height', 200);
  },function()
  {
	$(this).removeClass('pushed');
	$('div#toolQuery').css('height', 0);
  });

  $(window).click(function()
  {
	$.event.trigger('closeEditor');
  });
});

$.fn.editable = function(sSelector, oSettings)
{
  var sSelector = (sSelector) ? sSelector : '*';
  var oSettings = $.extend(oSettings, {});

  $(this).find(sSelector).each(function()
  {
	$(this).click(function(e,d)
	{
	  if(!d)
		e.stopPropagation();

	  $.event.trigger('closeEditor');

	  if($(this).parent().children().length > 0)
	  {
		var self = this;
		$('<input type="text" value="' + $(this).css('display', 'none').html() + '" />')
		  .css('width', $(this).width())
		  .insertAfter($(this))
		  .focus()
		  .keypress(function(e)
		  {
			if(e.keyCode == 9)
			{
			  $(this).trigger('openEditor');
			  $(this).trigger('closeEditor');
			}
		  })
		  .bind('closeEditor', function()
		  {
			$(self).html($(this).val()).show();

			if(oSettings.afterUpdate)
			  oSettings.afterUpdate.call(this)

			$(this).remove();
		  })
		  .bind('openEditor', function(e)
		  {
			$(this).next('span.tagName,span.tagAttrName,span.tagAttrValue,span.tagValue').trigger('click', [true]);
		  });
	  }
	});
  });

  return $(this);
}
